<?php

require_once($_SERVER['DOCUMENT_ROOT'] . '/fatec-si/utils/' . 'MYSQLAdapter.php');
require_once($_SERVER['DOCUMENT_ROOT'] . '/fatec-si/model/' . 'Evento.php');

class EventoDAO{
	private  $_SUCESSO = 1;
	private  $_ERRO = 0;
	private  $adapter;

	public function __construct(){
		$this->adapter = new MYSQLAdapter($GLOBALS['config']);
	}
	public function save(array $evento){
		$data = array('id_processo'=>$evento['id_processo'],'nome'=>$evento['nome'],'data_inicio'=>$evento['data_inicio'],'data_proximo'=>$evento['data_proximo'],'documento_caminho'=>$evento['documento_caminho']);
		$id_evento = $this->adapter->insert("tb_evento",$data);
		if($id_evento){
			return $this->_SUCESSO;
		}
		return $this->_ERRO;
	}
	public function count(){
		$this->adapter->select("tb_evento");
		return $this->adapter->getAffectedRows();
	}
	public function findById ($id){
		$this->adapter->select ("tb_evento","id_evento = '$id'");
		return $this->adapter->fetch();
	}
	public function removeById($id){
		$affectedRows = $this->adapter->delete("tb_evento","id_evento = '$id' ");
		if($affectedRows){
			return $this->_SUCESSO;
		}
		return $this->_ERRO;
	}
	public function update (array $evento){
		$id = $evento['id_evento'];
		if (isset($evento['documento_caminho'])){
			$data = array('id_processo'=>$evento['id_processo'],'nome'=>$evento['nome'],'data_inicio'=>$evento['data_inicio'],'data_proximo'=>$evento['data_proximo'],'documento_caminho'=>$evento['documento_caminho']);

		}else{
			$data = array('id_processo'=>$evento['id_processo'],
			'nome'=>$evento['nome'],'data_inicio'=>$evento['data_inicio'],
			'data_proximo'=>$evento['data_proximo']);		
		}
		return $this->adapter->update("tb_evento",$data,"id_evento = '$id'");
	}
	public function findAllByProcesso($id_processo,$sidx , $sord , $start, $limit){
		$this->adapter->select("tb_evento","id_processo = '$id_processo'
				ORDER BY $sidx $sord LIMIT $start, $limit");
		return  $this->adapter->fetchAllByFilter('evento',array (''));
	}
        
        public function findAllByProcessoWithFilters($id_processo,$sidx , $sord , $start, $limit, $search_field, $search_string, $search_oper){
            if ($search_oper == 'eq') {
		$this->adapter->select("tb_evento","id_processo = '$id_processo' AND $search_field = '$search_string'
				ORDER BY $sidx $sord LIMIT $start, $limit");
		return  $this->adapter->fetchAllByFilter('evento',array (''));
            } else {
                $this->adapter->select("tb_evento","id_processo = '$id_processo' AND $search_field like '%$search_string%'
				ORDER BY $sidx $sord LIMIT $start, $limit");
		return  $this->adapter->fetchAllByFilter('evento',array (''));
            }
	}
}